#pragma once

#ifdef _EXPORTING
   #define UDBG_DECLSPEC    __declspec(dllexport)
#else
   #define UDBG_DECLSPEC    __declspec(dllimport)
#endif

extern "C"
{
UDBG_DECLSPEC void SetCallback(void* CallbackFunc);
UDBG_DECLSPEC void ShowDllForm();
UDBG_DECLSPEC void BuildHierarchy();
UDBG_DECLSPEC void ClearHierarchy();
UDBG_DECLSPEC void AddClassToHierarchy(const char* ClassName);
UDBG_DECLSPEC void ClearWatch(int WatchType);
UDBG_DECLSPEC void ClearAWatch(int WatchType);
UDBG_DECLSPEC int  AddAWatch(int WatchType, int ParentIndex, const char* VarName, const char* VarValue);
UDBG_DECLSPEC void LockList(int WatchList);
UDBG_DECLSPEC void UnlockList(int WatchList);
UDBG_DECLSPEC void AddBreakpoint(const char* ClassName, int LineNo);
UDBG_DECLSPEC void RemoveBreakpoint(const char* ClassName, int LineNo);
UDBG_DECLSPEC void EditorLoadClass(const char* ClassName);
UDBG_DECLSPEC void EditorGotoLine(int LineNo, int bHighlight);
UDBG_DECLSPEC void AddLineToLog(const char* Text);
UDBG_DECLSPEC void CallStackClear();
UDBG_DECLSPEC void CallStackAdd(const char* CallStackEntry);
UDBG_DECLSPEC void SetCurrentObjectName(const char* ObjectName);
UDBG_DECLSPEC void DebugWindowState(int StateCode);
}